---
sidebar_position: 8
---

# Запись изменений в репозиторий

:::note Команда `git commit`

Создает новый коммит с файлами из индекса.

Документация [здесь](https://git-scm.com/docs/git-commit).
:::

Основы работы с Git предполагают понимание **коммитов**. Команда `git commit` откроет текстовый редактор для ввода сообщения коммита. Также эта команда принимает несколько аргументов:

- `-m` позволяет написать сообщение вместе с командой, не открывая редактор. Например `git commit -m "Пофиксил баг"`;
- `-a` переносит все отслеживаемые файлы в область подготовленных файлов и включает их в коммит (позволяет пропустить git add перед коммитом);
- `--amend` заменяет последний коммит новым изменённым коммитом, что бывает полезно, если вы неправильно набрали сообщение последнего коммита или забыли включить в него какие-то файлы.

:::danger Ловушка `git commit`

По умолчанию команда `git commit` откроет `Vim`, из которого выход найти сложно 😈.

Как выйти из Vim можно найти [здесь](https://losst.ru/kak-vyjti-iz-vim).
:::

Советы для эффективного введения в Git:

- Коммитьте как можно чаще.
- Одно изменение — один коммит: не помещайте все не связанные между собой изменения в один коммит, разделите их, чтобы было проще откатиться.
- Формат сообщений: заголовок должен быть в повелительном наклонении, меньше 50 символов в длину и должен логически дополнять фразу `this commit will ___` (`this commit will fix bugs` — этот коммит исправит баги).
- Сообщение должно пояснять, почему был сделан коммит, а сам коммит показывает, что изменилось.
- Если у вас много незначительных изменений, хорошим тоном считается делать небольшие коммиты при разработке, а **при добавлении в большой репозиторий объединять их в один коммит** (про сжатие коммитов читайте [здесь](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History)).

Запишем изменения для нашего примера:

```bash
git commit -m "Добавил README"
```

Результат:

```bash
[main (root-commit) 02c9b2c] Добавил README
 1 file changed, 1 insertion(+)
 create mode 100644 README
```

А так выглядит наш коммит [GitKraken](https://www.gitkraken.com/):

![Первый коммит](images/git-commit-first.png)

:::note Важно не просто коммитить, но и блюсти формат сообщений

Хорошая древняя статья на тему того КАК нужно писать сообщения к коммитам [тут](https://habr.com/ru/post/416887/).
:::


## Атрибуция

При подготовке статьи использован материал:

- [git-scm.com/docs](https://git-scm.com/docs/)
- [tproger.ru](https://tproger.ru/translations/beginner-git-cheatsheet/)
